package com.zz.inventory.service;

import java.util.List;

import com.zz.inventory.domain.Clients;
import com.zz.inventory.domain.Labs;
import com.zz.inventory.domain.ServiceResult;

/**
 * 机房信息Service接口
 * 
 * @author ruoyi
 * @date 2025-07-01
 */
public interface ILabsService 
{
    /**
     * 查询机房信息
     * 
     * @param labId 机房信息主键
     * @return 机房信息
     */
    public Labs selectLabsByLabId(Long labId);

    /**
     * 查询机房信息列表
     * 
     * @param labs 机房信息
     * @return 机房信息集合
     */
    public List<Labs> selectLabsList(Labs labs);

    /**
     * 新增机房信息
     * 
     * @param labs 机房信息
     * @return 结果
     */
    public int insertLabs(Labs labs);

    /**
     * 修改机房信息
     * 
     * @param labs 机房信息
     * @return 结果
     */
    public int updateLabs(Labs labs);

    /**
     * 批量删除机房信息
     * 
     * @param labIds 需要删除的机房信息主键集合
     * @return 结果
     */
    ServiceResult<Integer> deleteLabsByLabIds(Long[] labIds);

    /**
     * 删除机房信息信息
     * 
     * @param labId 机房信息主键
     * @return 结果
     */
    // 修改单条删除方法的返回值为 ServiceResult<Integer>
    ServiceResult<Integer> deleteLabsByLabId(Long labId);
    // 新增：检查机房是否被学校使用
    boolean isLabUsedBySchool(Long labId);
    public void updateLabStatusByClient(Long clientId, String clientStatus);

    public String determineLabStatus(List<Clients> clients);
}
